import Cookies from 'js-cookie'

const TOKEN_KEY = 'admin-token'
const USER_INFO_KEY = 'user-info'

/**
 * 获取Token
 */
export function getToken() {
  return Cookies.get(TOKEN_KEY)
}

/**
 * 设置Token
 */
export function setToken(token) {
  return Cookies.set(TOKEN_KEY, token)
}

/**
 * 删除Token
 */
export function removeToken() {
  return Cookies.remove(TOKEN_KEY)
}

/**
 * 获取用户信息
 */
export function getUserInfo() {
  const userInfo = localStorage.getItem(USER_INFO_KEY)
  return userInfo ? JSON.parse(userInfo) : null
}

/**
 * 设置用户信息
 */
export function setUserInfo(userInfo) {
  localStorage.setItem(USER_INFO_KEY, JSON.stringify(userInfo))
}

/**
 * 删除用户信息
 */
export function removeUserInfo() {
  localStorage.removeItem(USER_INFO_KEY)
}

/**
 * 检查是否已登录
 */
export function isLoggedIn() {
  return !!getToken()
}

/**
 * 检查用户角色
 */
export function hasRole(role) {
  const userInfo = getUserInfo()
  return userInfo && userInfo.role === role
}

/**
 * 检查用户权限
 */
export function hasPermission(permission) {
  const userInfo = getUserInfo()
  return userInfo && userInfo.permissions && userInfo.permissions.includes(permission)
}

/**
 * 登出
 */
export function logout() {
  removeToken()
  removeUserInfo()
  // 清除其他本地存储数据
  localStorage.removeItem('userRole')
  localStorage.removeItem('userPermissions')
}

/**
 * 获取用户角色
 */
export function getUserRole() {
  const userInfo = getUserInfo()
  return userInfo ? userInfo.role : null
}

/**
 * 获取用户权限
 */
export function getUserPermissions() {
  const userInfo = getUserInfo()
  return userInfo ? userInfo.permissions || [] : []
} 